package com.briup.day08;

import java.util.Arrays;

/**
 * @author ThinkBook
 */
public class Test04_SelectSort {
    public static void main(String[] args) {
        //准备一个int数组
        int[] array = {5, 2, 6, 5, 9, 0, 3};
        System.out.println("排序前: "+ Arrays.toString(array));
//插入排序
        selectionSort(array);
//输出排序结果
        System.out.println("排序后: "+ Arrays.toString(array));

    }
    //选择排序
    public static void selectionSort(int[] arr) {
        int len = arr.length;
        if(len <= 1)
            return;
//外层循环控制总体排序次数
        for(int i = 0; i < len-1; i++) {
            int minIndex = i;
//内层循环找到当前无序列表中最小下标
            for(int j = i + 1; j < len; j++) {
                if(arr[minIndex] > arr[j]) {
                    minIndex = j;
                }
            }
//将无需列表中最小值添加到 有序列表最后位置
            if(minIndex != i) {
                arr[minIndex] = arr[minIndex] ^ arr[i];
                arr[i] = arr[minIndex] ^ arr[i];
                arr[minIndex] = arr[minIndex] ^ arr[i];
            }
//System.out.println(Arrays.toString(arr));
        }
    }
}
